﻿using Common.Define;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

/* 
  *  机器人基本参数定义
  *  作用：主要用来存放机器人基本参数的数据结构与定义
  *  创建时间：2019/07/20 wj
  *  修改时间：2019/08/12 wj
  */
namespace Common.Device
{
    public class Robot: DeviceBase
    {
        public Robot()
        {}

        /** 设备类别 */
        public RobotDeviceType DeviceType = RobotDeviceType.SerialRobot;

        /** 设备数据 **/
        public ModelDefine ModelData;

        /** 运动相关数据 **/
        public MotionDefine MotionData;

        /** 设备接口 **/
        public ModelInterface InterfaceData = new ModelInterface();

        /** 获取模型参数 **/
        public void GetRobotModelData(ModelDefine modelData)
        {
            this.ModelData = modelData;
        }

        /** 获取设备接口参数 **/
        public void GetRobotModelInterfaceData(ModelInterface modelInterfaceData)
        {
            this.InterfaceData = modelInterfaceData;
        }

        /** 【面向 SCARA 机器人】机器人边界参数计算方程 **/
        //public static void computationalBoundaryForSCARA()
        //{
        //   // minBorderHeight = ModelData.D   DH[0].d + DH[1].d + DH[2].d + DH[3].d + DH[2].liminf;
        //   // maxBorderHeight = DH[0].d + DH[1].d + DH[2].d + DH[3].d + DH[2].limsup;
        //   // //内圆环半径
        //   //planeXYInsideBorder = Math.Sqrt(Math.Pow(DH[1].a - DH[2].a * Math.Cos(Math.PI - DH[1].limsup), 2)+ Math.Pow(DH[2].a * Math.Sin(Math.PI - DH[1].limsup), 2));
        //   ////外圆环半径
        //   //planeXYOutsideBorder = DH[1].a + DH[2].a;
        //}

    }
}

/**
   * \brief 机器人类别
   */
public enum RobotDeviceType {
    None,
    SerialRobot,   // 串联机器人类型
    ParallelRobot, // 并联机器人类型
    MobileRobot,   // 移动机器人类型
}